home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / The World of Computer Software.iso / vsc92nov.zip / Fixnum.h < prev    next >
C/C++ Source or Header  |  1992-11-02  |  1KB  |  37 lines

  1. /*
  2.  * Fixnum.h -- Declarations for Scheme's fixnums
  3.  *
  4.  * Note: instances of this type are never exposed to the Scheme programmer,
  5.  *       but they are used to implement Scheme numbers
  6.  *
  7.  * (C) m.b (Matthias Blume), Mon May  4 16:06:15 MET DST 1992, HUB/Ger
  8.  *         Humboldt-University of Berlin, Germany
  9.  *
  10.  * ident "@(#) Fixnum.h (C) M.Blume, Humboldt-Uni Berlin, 1.3"
  11.  */
  12.  
  13. # ifndef FIXNUM_H_
  14. # define FIXNUM_H_
  15.  
  16. # include "storage.h"
  17.  
  18. typedef
  19. struct ScmFixnum {
  20.   object_head _;
  21.   unsigned int sign    : 1;
  22.   unsigned int length    : 15;
  23.   unsigned short dig [1];
  24. } ScmFixnum;
  25.  
  26. extern od_vector ScmFixnum_od_vector;
  27. # define ScmFixnum_description (ScmFixnum_od_vector[0])
  28.  
  29. extern void ScmFixnumToAscii (ScmFixnum *a, char *s);
  30. extern ScmFixnum *ScmScanFixnum (char *s, int base);
  31. extern ScmFixnum *ScmLong2Fixnum (long x);
  32. extern ScmFixnum *ScmDouble2Fixnum (double x, int *inexact);
  33. extern double ScmFixnum2Double (ScmFixnum *x, int *inexact);
  34. extern ScmFixnum *ScmDivideFixnums (ScmFixnum *x, ScmFixnum *y, ScmFixnum **r);
  35.  
  36. # endif
  37.